Класс LinterSqlException
Класс предназначен для обработки кодов завершения, возвращаемых ADO.NET-провайдеру СУБД ЛИНТЕР.
Этот класс создается всякий раз при обнаружении ADO.NET-провайдером СУБД ЛИНТЕР кода завершения, полученного от ЛИНТЕР-сервера. (Ошибки на стороне клиентского приложения возникают как стандартные исключения среды CLR).
Полный список сообщений LinterSqlException и рекомендации по устранению ошибок см. в документе «Справочник кодов завершения».
Пример
// C#
using System;
using System.Data.LinterClient;
class Program
{
public static void ShowLinterException(string connectionString)
{
string queryString = "EXECUTE NonExistantStoredProcedure";
using (LinterDbConnection connection = new LinterDbConnection(connectionString))
{
LinterDbCommand command = new LinterDbCommand(queryString, connection);
try
{
command.Connection.Open();
command.ExecuteNonQuery();
}
catch (LinterSqlException ex)
{
Console.WriteLine("Код СУБД ЛИНТЕР: " + ex.Number);
Console.WriteLine("Код операционной системы: " + ex.LinterSysErrorCode);
Console.WriteLine("Номер строки SQL: " + ex.SqlLineNumber);
Console.WriteLine("Позиция в строке SQL: " + ex.SqlPositionInLine);
Console.WriteLine("Текст сообщения: " + ex.Message);
Console.WriteLine("Имя поставщика: " + ex.Source);
Console.WriteLine("Метод: " + ex.TargetSite);
Console.WriteLine("Стек вызовов: ");
Console.WriteLine(ex.StackTrace);
}
}
}
static void Main(string[] args)
{
ShowLinterException("Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8");
}
}
Результат выполнения примера:
Код СУБД ЛИНТЕР: 2229
Код операционной системы: 2228225
Номер строки SQL: 1
Позиция в строке SQL: 34
Текст сообщения: [Linter error] unknown procedure
Имя поставщика: .Net LinterClient Data Provider
Метод: IntPtr prepare(System.Data.LinterClient.TCBL ByRef, System.String)
Стек вызовов:
at System.Data.LinterClient.LinterBaseFunctions.prepare(TCBL& cbl, String strQuery)
at System.Data.LinterClient.CommandInfo.prepare(TCBL cbl, LinterDbParameter[]& lpars)
at System.Data.LinterClient.MultipleCommands.prepare()
at System.Data.LinterClient.LinterDbCommand.Prepare()
at System.Data.LinterClient.LinterDbCommand.ExecuteNonQuery()
at Program.ShowLinterException(String connectionString)
Свойства класса LinterSqlException приведены в таблице 40.
| Свойство | Описание |
|---|---|
| Data | Предоставляет массив пар «ключ/значение» с дополнительной информацией об исключении. |
| ErrorCode | Предоставляет HRESULT кода завершения (32-битное значение (ULONG) используемое для описания кодов завершения). |
| Errors | Предоставляет один или несколько объектов класса ПримечаниеВ текущей версии ADO.NET провайдера экземпляры класса |
| HelpLink | Предоставляет/устанавливает ссылку на файл справки, связанный с заданным исключением. |
| InnerException | Предоставляет экземпляр класса Exception, вызвавший текущее исключение. |
| Message | Предоставляет текст сообщения, которое описывает текущее исключение. |
| Number | Предоставляет числовое значение кода завершения СУБД ЛИНТЕР. |
| Source | Предоставляет имя поставщика данных, сгенерировавшего код завершения. |
| SqlLineNumber | Предоставляет номер строки в SQL запросе для ошибок транслятора SQL. |
| SqlPositionInLine | Предоставляет позицию в строке SQL запроса для ошибок транслятора SQL |
| StackTrace | Предоставляет строковое представление фрагмента стека вызова в момент возникновения текущего исключения. |
| TargetSite | Предоставляет имя метода, в котором возникло текущее исключение. |
Методы класса LinterSqlException приведены в таблице 41.
| Метод | Описание |
|---|---|
GetBaseException | Предоставляет корневое исключение. |
GetObjectData | Управляет сериализацией исключения. |
Синтаксис
[Serializable] public class LinterSqlException : DbException